在Python中,串列(list) 是一種可以動態調整、儲存多種資料型態的資料結構。它以序列的方式組成多個元素,這些元素可以是相同或不同的資料型態。串列常被用來管理大量數據,例如建立學生成績表、資料庫管理等。
串列可以在同一個結構內儲存不同的資料型態,如整數、浮點數、字串,甚至可以儲存其他串列或是元組、字典等資料型態。這使 Python 的串列在處理複雜數據時比其他語言的陣列(array)更具優勢。
在Python中,定義一個串列只需將一組元素放在中括號 []
內,並以逗號分隔。以下是定義串列的格式:
name_list = [元素1, 元素2, ..., 元素n]
接下來會講到一些常見的操作,有讀取、切片兩種。
串列的每一個元素都有索引值,從0開始排列。這表示第一個元素的索引是0,第二個元素是1,依此類推。例如:
串列索引值為-n,代表最後第n筆元素
在設計程式時,我們常常需要從串列中取出部分資料,而不需要整個串列。此時可以使用Python的串列切片功能,而根據索引範圍選取的部分資料稱為子串列。以下是常用的切片操作方法:
name_list[start:end]
:從索引start開始,取到end-1的元素。name_list[:n]
:取得前n個元素。name_list[-n:]
:取得最後n個元素。name_list[:-n]
:取得串列前面,不含最後n個元素。name_list[n:]
:取得串列索引n到最後。name_list[-n:]
:取得串列後n個元素。name_list[:]
:取得所有元素。name_list[start:end:step]
:每隔 step,讀取從索引 start 到索引(end-1)的串列元素串列切片的簡單練習:
Python提供了多種內建函數來處理串列中的資料,這些函數大大提升了程式的操作效率。常見的函數包括:
函數 | 功能 |
---|---|
max() |
取得串列中數字型元素的最大值 |
min() |
取得最小值 |
sum() |
計算數值元素的總和 |
len() |
返回串列中元素的個數 |
若是遇到同時含有字串和數值的串列,這時使用上述函數會導致錯誤:
但是不用緊張,這樣的串列還是能使用內建函數的,可以使用切片來改善這個問題:
可以看到我們把範圍改成從字串元素後開始,這樣就可以使用內建函數操作串列啦!
更改操作是直接賦值給指定索引。例如,將某個特定索引位置的元素更改為新的值:
不同串列相加,相當於將不同的串列進行結合。實例如下:
可以看到我使用 list3 來儲存 list1+list2 的內容,list3列印出來的就是 list1 結合 list2 的結果。
可以讀取不同串列的內容,並將不同串列內特定索引值的內容相加。實例如下:
可以看到我想取 list1 索引2的內容、和 list2 索引5的內容相加。
因為list1 索引2的內容是5,而 list2 索引5的內容是12,所以相加的結果是5+12=17。
我們可以把串列整個刪掉,但刪除後就無法復原,也無法對其做任何操作,下列是刪除串列的方式:del name_list
:刪除串列name_list。
若是想要除串列中的特定元素,可以指定索引的精確位置、或是索引範圍:
del name_list[i]
:刪除指定索引位置的元素。del name_list[start:end]
:刪除從索引 start 到 end-1 索引的串列元素。del name_list[start:end:step]
:每隔 step,刪除從索引 start 到(end-1)索引的串列元素。一起來看看實例:
當有超多超多的資料時,可以用一個串列來存放這些資料,讓我覺得很方便。而且在編輯上也很靈活,可以隨時更改、刪除資料,一次可以選擇一個或多個的元素進行操作。雖然我覺得切片時範圍的部分不太好記,不過經過了一些練習讓我比較有概念了。
還有一個特別的點是串列裡面的元素可以包括各種資料型態,像是文章中有提到的整數、浮點數、字串等,不用再因為資料型態不同而慢慢的指定變數來存放資料,讓我覺得很省時。
今天學習到的是比較基礎的 list 知識,其實它還有很多功能跟內建函數,不過我覺得之後有用到的話可以再更深入了解,現在先有基本的核心知識就可以啦~